package testes;

import static org.junit.Assert.*;

import java.util.HashSet;
import java.util.Set;

import org.bunny.businessLayer.Clube;
import org.bunny.businessLayer.Jogador;
import org.bunny.businessLayer.Pais;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

public class ClubeTest {

	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
	}

	@AfterClass
	public static void tearDownAfterClass() throws Exception {
	}

	@Before
	public void setUp() throws Exception {
	}

	@After
	public void tearDown() throws Exception {
	}

	@Test
	public void testClube() {
		Clube a = new Clube();
		assertTrue(Clube.allInstances.contains(a));
		
	}

	@Test
	public void testClubeStringPais() {
		Pais a = new Pais();
		Clube b = new Clube("Portugal",a);
		
		assertTrue(Clube.allInstances.contains(b));
		
		b.setNome("Belgica");
		assertEquals("Belgica",b.nome());
		
		Pais c = new Pais();
		
		b.setPais(c);
		
		assertSame(c,b.pais());
	}

	

	@Test
	public void testSetJogadores() {
		Set<Jogador> result = new HashSet<Jogador>();
		
		Clube c = new Clube();
		
		Jogador j1 = new Jogador();
		Jogador j2 = new Jogador();

		Jogador.allInstances.add(j2);
		
		result.add(j1);
		
		c.setJogadores(result);
		
		assertEquals(result,c.jogadores());
	}

	@Test
	public void testToString() {
		Pais p = new Pais();
		Clube a = new Clube("Portugal",p);
		
		assertEquals("Clube [nome=" + a.nome() + ", pais=" + p + "]\n",a.toString());
	}

}
